﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Text;

namespace AdoHelper
{
    public interface IDataBase
    {
        string ConnectionString
        {
            get;
            set;
        }
        DbProviderFactory Factory
        {
            get;
            set;
        }
        string SystemDateFunction
        {
            get;
            set;
        }
        string IdentifierPrefix
        {
            get;
            set;
        }
        string IdentifierPostfix
        {
            get;
            set;
        }
        string ParameterPrefix
        {
            get;
            set;
        }
        //=================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================--
        object ExecuteScalar(string query, CommandType c, ref Exception error, params DbParameter[] p);
        object ExecuteScalar(string query, CommandType c, DbConnection connection,DbTransaction trnsaction, DbCommand command, ref Exception error, params DbParameter[] p);
        //=================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================--
        DbDataReader ExcuteReader(string query, CommandType c, ref Exception error, params DbParameter[] p);
        DbDataReader ExcuteReader(string query, CommandType c, DbConnection connection, DbTransaction trnsaction, DbCommand command, ref Exception error, params DbParameter[] p);
        //=================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================--
        int ExecuteNonQuery(string query, CommandType c, ref Exception error, params DbParameter[] p);
        int ExecuteNonQuery(string query, CommandType c, DbConnection connection, DbTransaction trnsaction, DbCommand command, ref Exception error, params DbParameter[] p);
        //=================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================--
        DataSet GetDataSet(string query, CommandType c, ref Exception error, params DbParameter[] p);
        DataSet GetDataSet(string query, CommandType c, DbConnection connection, DbCommand command,DbDataAdapter adapter, ref Exception error, params DbParameter[] p);
        //=================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================--
        DataTable GetDataTable(string query, CommandType c, ref Exception error, params DbParameter[] p);
        DataTable GetDataTable(string query, CommandType c, DbConnection connection, DbCommand command, DbDataAdapter adapter, ref Exception error, params DbParameter[] p);
        //=================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================--

        event DataBaseErrorDelegate ONError;
        //=================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================--
        DateTime GetServerDate(ref Exception error);
        //=================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================--
    }
}
